const events = {
  // node + window（+ htmlElement + Document）:
  onselectstart: null,
  // ------------ only document: -----------------
  onreadystatechange: null,
  onvisibilitychange: null,
  // -----------only window: ----------
  onbeforetoggle: null,
  ondevicemotion: null,
  ondeviceorientation: null,
  ondeviceorientationabsolute: null,
  onorientationchange: null,
  onafterprint: null,
  onbeforeprint: null,
  onbeforeunload: null,
  ongamepadconnected: null,
  ongamepaddisconnected: null,
  onhashchange: null,
  onlanguagechange: null,
  onmessage: null,
  onmessageerror: null,
  onoffline: null,
  ononline: null,
  onpagehide: null,
  onpageshow: null,
  onpopstate: null,
  onrejectionhandled: null,
  onstorage: null,
  onunhandledrejection: null,
  onunload: null,

  //  ==========  htmlElement + window + Document：====================
  onmousedown: null,
  onmouseenter: null,
  onmouseleave: null,
  onmousemove: null,
  onmouseout: null,
  // mouseout和mouseleave非常像，不同的是:
  // out冒泡，只有最深的元素触发一个事件并不断冒泡
  // leave不会冒泡，所有元素各产生一个事件
  // 差异就是event.target是否等于event.currentTarget，relatedTarget
  // 【over out是一组，enter leave是一组】 参考：https://zh.javascript.info/mousemove-mouseover-mouseout-mouseenter-mouseleave
  onmouseover: null,
  onmouseup: null,

  ondrag: null,
  ondragend: null,
  ondragenter: null,
  ondragleave: null,
  ondragover: null,
  ondragstart: null,
  ondrop: null,

  onauxclick: null,
  onclick: null,
  oncontextmenu: null,
  ondblclick: null,

  onkeydown: null,
  onkeypress: null,
  onkeyup: null,

  //  ==========  htmlElement + window + Document：====================
  onabort: null,
  onbeforeinput: null,
  onblur: null,
  oncancel: null,
  oncanplay: null,
  oncanplaythrough: null,
  onchange: null,
  onclose: null,
  oncopy: null,
  oncuechange: null,
  oncut: null,
  ondurationchange: null,
  onemptied: null,
  onended: null,
  onerror: null,
  onfocus: null,
  onformdata: null,
  oninput: null,
  oninvalid: null,
  onload: null,
  onloadeddata: null,
  onloadedmetadata: null,
  onloadstart: null,
  onpaste: null,
  onpause: null,
  onplay: null,
  onplaying: null,
  onprogress: null,
  onratechange: null,
  onreset: null,
  onsecuritypolicyviolation: null,
  onseeked: null,
  onseeking: null,
  onselect: null,
  onselectionchange: null,
  onslotchange: null,
  onstalled: null,
  onsubmit: null,
  onsuspend: null,
  ontimeupdate: null,
  ontoggle: null,
  onvolumechange: null,
  onwaiting: null,
  onwheel: null,
};
